<?php
namespace app\home\controller;

use think\Controller;
use think\Cookie;

// 公共控制器
use app\common\controller\Home AS HomeController;

// 收藏控制器
class Likes extends HomeController{
    // 构造函数
    public function __construct()
    {
        // 继承底层的控制器构造函数(底层父类构造函数)
        parent::__construct();

        // 定义一个全局模型
        $this->UserModel=model('User.User');
        $this->PostModel=model('Post.Post');
        $this->CommentModel=model('Post.Comment');
    }

    // 添加收藏
    public function add(){
        $success=[
            'result'=>false,
            'msg'=>''
        ];

        // 判断是否有post数据
        if($this->request->isPost()){
            $commentid=$this->request->param('id',0);

            // 根据id去查询这个帖子是否存在
            $post=$this->CommentModel->find($commentid);

            if(!$post){
                $success['msg']='该点赞的评论不存在';
                exit;
            }

            $likearr=explode(',',$post['like']);
            if(in_array(Cookie::get('LoginUser')['id'],$likearr)){
                $index=array_search(Cookie::get('LoginUser')['id'],$likearr);
                unset($likearr[$index]);
                $likestr=ltrim(implode(',',$likearr),',');

                $data=[
                    'id'=>$post['id'],
                    'like'=>$likestr
                ];

                $likeupdate=$this->CommentModel->isUpdate(true)->save($data);

                if($likeupdate){
                    $success['result']=true;
                    $success['msg']='取消点赞成功';
                    return json($success);
                }else{
                    $success['result']=false;
                    $success['msg']='取消点赞失败';
                    return json($success);
                }
            }else{
                $likearr[]=Cookie::get('LoginUser')['id'];
                $likestr=ltrim(implode(',',$likearr),',');

                $data=[
                    'id'=>$post['id'],
                    'like'=>$likestr
                ];

                $likeUpdate=$this->CommentModel->isUpdate(true)->save($data);

                if($likeUpdate){
                    $success['result']=true;
                    $success['msg']='点赞成功';
                    return json($success);
                }else{
                    $success['result']=false;
                    $success['msg']='点赞失败';
                    return json($success);
                }
            }
        }
    }
}

?>